﻿var ajaxbg = $("#background,#progressBar");
/**
* 发送ajax请求
* @param option:请求的参数(参考 jQuery 的),里面包含 {
*   btn: 提交的按钮(发送请求时将会不可用,请求返回后恢复)
*   isloading: 请求时显示"正在处理..."信息
*   url: 请求的地址(默认: 当前页地址)
*   data: 请求的数据,将自动转换为请求字符串格式,必须为 Key/Value 格式。 Object,String
*   type: 请求方式 (默认: "GET", 可选值为"POST" 或 "GET")， 
*   dataType: 预期服务器返回的数据类型。String
*   success: 请求成功后的回调函数。Function
*   其它: 传递给 jQuery.ajax 的其它参数
* }
* 注意：全局变量 System_Path 指定网站的绝对路径
*/
$.ajaxCustom = function (option) {
    option = option || {};
    // url 如果不是 System_Path 开头,在加上 System_Path
    if (System_Path && option.url && option.url.charCodeAt(0) !== 47) {
        option.url = System_Path + option.url;
    }

    // 取出所需参数,并释放
    var btn = option.btn;
    var isloading = typeof option.isloading == 'undefined' ? true : option.isloading;
    var complete = option.complete; // 请求后的事件
    delete option.btn;
    delete option.isloading;
    delete option.complete; // 需要覆盖此事件,故删除

    // 发送请求前的动作(按钮不可点击,加上"正在处理..."的显示信息)
    if (btn) btn.attr("disabled", true);
    //alert(btn.attr("disabled"));
    //  $("#loading").css("display", "block");
    if (isloading) {
        ajaxbg.show();
//        try {
//            /*var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
//            var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
//            var top = scrollTop + (window.screen.height - 203) / 2;
//            var left = scrollLeft + (window.screen.width - 240) / 2;*/
//            $.blockUI({ fadeIn: 0,
//                fadeOut: 0,
//                showOverlay: true,
//                message: '正在处理，请稍等...',
//                centerY: 0,
//                css: {
//                    border: '#6198dd 1px solid',
//                    padding: '30px 0px 0px 0px',
//                    width: '240px',
//                    height: '42px',
//                    //position: 'absolute',
//                    position: 'fixed',
//                    color: '#6a6868',
//                    top: '30%',
//                    left: '48%',
//                    margin: '-31px 0 0 -120px',
//                    background: "url(" + Barfoo_Framework_ServiceApp + "Content/images/loading_animy.gif) no-repeat 50% 28% #f4f9fe"
//                }
//            });
//        }
//        catch (e) { }
    }

    // 要执行的参数
    var sendOption = {
        dataType: "html",
        cache: false,
        error: function () {
            //alert("请求出错，请刷新网页重试");
        },
        // 请求返回后,恢复ui
        complete: function (XHR, TS) {
            //var t = "<title>" + Barfoo_Framework_LoginTitle + "</title>";
            var data = XHR.responseText;
//            if (typeof data === "string" && data.indexOf(t) > -1) {
//                window.parent.location = Barfoo_Framework_ServiceApp + "account/login";
//            }
            if (btn) btn.attr("disabled", false);
            if (isloading) {
                //try { $.unblockUI(); } catch (e) { }
                ajaxbg.hide();
            }
            if (complete) complete(XHR, TS);
        }
    };
    // 添加要执行的参数
    for (var property in option) {
        sendOption[property] = option[property];
    }
    // 发送请求
    $.ajax(sendOption);
    return false;
};